// 封装倒计时逻辑函数
import { ref, computed, onUnmounted } from 'vue'
import { dayjs } from 'element-plus'
export const useCountDown = () => {
  // 1.响应式数据
  let timer = ref(null)
  // 格式化时间 为 xx分xx秒
  // 秒级的时间戳转dayjs必须用dayjs.unix（）方法
  const formatTime = computed(() => dayjs.unix(time.value).format('mm分ss秒'))
  const time = ref(0)
  // 2.开启倒计时函数
  const start = (currentTime) => {
    time.value = currentTime
    timer = setInterval(() => {
      time.value--
      if (time.value <= 0) {
        clearInterval(timer.value)
      }
    }, 1000)

    // 组件销毁时清除定时器
    onUnmounted(() => {
      //timer表示 定时器开启过
      timer && clearInterval(timer.value)
    })
  }
  return {
    formatTime,
    start,
  }
}
